<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body{
            padding-bottom: 800px;
            padding-left: 30px;
        }
        .cbox{
            border: 1px solid #999;
            padding: 20px;
            margin-bottom: 10px;
        }
    </style>
</head>
<body>
    <div id="app">
        <h4>全局组件</h4>
        <p>全局组件的定义，依赖于 Vue 构造函数提供的全局组件定义函数 app.component()</p> 
        <p>app.component(name, definition) <br>
            name(string) : 定义组件唯一名称，在页面中作为组件调用的标签名 <br>
            definition (Object)：描述组件的相关配置特性
        </p>
        <child-comp></child-comp>
        <hr>
        <comp-a></comp-a>
        <comp-b></comp-b>
        <input type="button" value="aaa">
    </div>
    <script type="module">
        // 加载 Vue3 的ESM 模块文件
        import { createApp } from "../../assets/vue3/vue.esm-browser.js"
        const app = createApp({
            data(){
                return {
                    
                }
            },
            components: {
                ChildComp:{
                    template:`
                        <div class="cbox">
                            <p>组件ChildComp</p>
                            <comp-a></comp-a>
                        </div>
                    `
                },
            },
        })
        
        app.component("CompA",{
            template:`
                <div class="cbox">
                    <p>全局组件CompA</p>
                    <comp-b></comp-b>
                </div>
            `
        })
        app.component("CompB",{
            template:`
                <div class="cbox">
                    <p>全局组件CompB</p>
                    <!-- <comp-a></comp-a> -->
                </div>
            `
        })

        app.mount("#app")
    </script>
</body>
</html>